// 引入库
const koa = require('koa')
const serve = require('koa-static')

const {historyApiFallback} = require('koa2-connect-history-api-fallback')

const proxy = require('koa2-proxy-middleware')

// 创建服务器实例
const app = new koa()

// 将不认识的地址指向 index.html
app.use(historyApiFallback({
  // 这里还可以定义白名单
  // 因为这个中间件作用是将所有不认识的地址统统转向 index.html
  // 有一些地追偿即使不认识也不应该转向 index (api/sys/login)
  whiteList: ['/prod-api']
}))

// 代理转发 proxy
app.use(proxy({
  targets: {
    // key:value 指定了需要 转向的地址: 转向的目的地(java)
    '/prod-api/(.*)': {
      target: 'http://ihrm-java.itheima.net',
      changeOrigin: true,
      // 虽然当前prod-api能够供我辨认哪些是数据请求,但是实质上转发到后台时
      // 后台时不认识 prod-api 后台只认识 api
      pathRewrite: {
        '/prod-api': '/api'
      }
    }
  }
}))

// 利用 koa-static 提供静态页面的访问
app.use(serve(__dirname+'/public'))

// 开启服务器监听端口
app.listen(3333, ()=>{
  console.log('服务器已经开启,端口是3333');
  console.log('http://127.0.0.1:3333');
})